package com.epam.tcs.dao.factory;

import com.epam.tcs.dao.hibernate.entities.Group;
import com.epam.tcs.dao.hibernate.entities.JournalLectureStatus;
import com.epam.tcs.dao.hibernate.entities.JournalPracticeStatus;
import com.epam.tcs.dao.hibernate.entities.Lecture;
import com.epam.tcs.dao.hibernate.entities.LectureStatus;
import com.epam.tcs.dao.hibernate.entities.Practice;
import com.epam.tcs.dao.hibernate.entities.PracticeStatus;
import com.epam.tcs.dao.hibernate.entities.Program;
import com.epam.tcs.dao.hibernate.entities.Student;
import com.epam.tcs.dao.hibernate.entities.Theme;

public abstract class DAOFactory {
	public static DAOFactory getDaoFactory(){
		return new HibernateDAOFactory();
	}
	
	public abstract DAO<Student> getStudentDAO();
	public abstract DAO<Group> getGroupDAO();
	public abstract DAO<Program> getProgramDAO();
	public abstract DAO<Theme> getThemeDAO();
	public abstract DAO<Lecture> getLectureDAO();
	public abstract DAO<Practice> getPracticeDAO();
	public abstract DAO<JournalLectureStatus> getJournalLectureStatusDAO();
	public abstract DAO<JournalPracticeStatus> getJournalPracticeStatusDAO();
	public abstract DAO<LectureStatus> getLectureStatusDAO();
	public abstract DAO<PracticeStatus> getPracticeStatusDAO();
	
}
